import os
import subprocess


def avi_to_mp4(directory):
    for filename in os.listdir(directory):
        # 检查文件扩展名是否为.avi
        if filename.endswith('.avi'):
            # 构建完整的文件路径
            avi_path = os.path.join(directory, filename)

            # 构建MP4文件的路径，这里只是简单地将扩展名改为.mp4
            mp4_path = os.path.splitext(avi_path)[0] + '.mp4'
            print(avi_path)
            # 使用FFmpeg进行转换
            try:
                # 注意：这里使用了subprocess.run来运行FFmpeg命令，并等待命令完成
                # -i 指定输入文件，-c:v 和 -c:a 指定视频和音频编码器，这里使用了libx264和aac
                # 你可能需要根据你的FFmpeg安装和需求调整这些参数
                subprocess.run(['ffmpeg', '-i', avi_path, '-c:v', 'libx264', '-c:a', 'aac', mp4_path], check=True)

                # 如果转换成功，删除原始的AVI文件
                os.remove(avi_path)
                # print(f'Successfully converted {filename} to MP4 and deleted the original file.')
                return True
            except subprocess.CalledProcessError as e:
                # 如果转换失败，打印错误信息
                print(f'Failed to convert {filename} to MP4. Error: {e}')
                return False
